//
//  GYRootViewController.swift
//  Swift-sina
//
//  Created by gaoyanyun on 16/5/11.
//  Copyright © 2016年 mac. All rights reserved.
//

import UIKit

//cell的可重用  private let CZStatusCellID = "CZStatusCellID"

class GYRootViewController: UIViewController {
    //用户登录
    let userLogn = false
    
    //公共属性
    lazy var tableView = UITableView (frame: CGRectZero, style: .Plain)
    
    
    //下拉刷新控件
    lazy var refreshControl = UIRefreshControl()
    
    //上拉刷新视图
    lazy var pullupView = UIActivityIndicatorView (activityIndicatorStyle: UIActivityIndicatorViewStyle.Gray)
    
     //访客视图属性  用户登录就不创建访客视图
     var visitorView:GYVisitorView?
   //懒加载登录成功也会创建
 // lazy  var visitorView:GYVisitorView? = GYVisitorView()
    //视图的生命周期
    override func loadView() {
     
      setupRefreshControl()
        
        //用户登录显示tableView 否则显示VisitorView
        userLogn ? setupTableView(): setupVisitorView()
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
      loadData()
        
        // 就是界面一显示就有菊花
        //refreshControl.beginRefreshing()
        
    }
    
    //加载数据 真正的加载应该放在子类中
    func loadData()  {
    
    }
}

//遵守访客视图的协议
extension GYRootViewController:VisitorViewDelegate{
    
    func visitorViewDidRegistor() {
        print("注册")
    }
    
    func visitorViewDidLogin() {
        print("登录")
    }
}
  


//设置界面
extension GYRootViewController{
    
    //设置访客视图的界面
    private func setupVisitorView() {
        
     visitorView = GYVisitorView()
        //设置代理
        visitorView?.delegate = self 
        
        view = visitorView
        
        // view.backgroundColor = UIColor.orangeColor()
        
        //设置导航栏
        navigationItem.leftBarButtonItem = UIBarButtonItem(
            
            title:"注册",
            style: .Plain,
            target: self,
            action: #selector(visitorViewDidRegistor))
        
        navigationItem.rightBarButtonItem = UIBarButtonItem(
            
            title: "登录",
            style: .Plain,
            target: self,
            action: #selector(visitorViewDidLogin))
        
        
        
        
    }
    
    //设置表格视图
    private func setupTableView() {
        view = tableView
        
        tableView.dataSource = self
        
        tableView.delegate = self
    }
    
    //设置刷新控件 需要刷新控件的子控制器单独调用
   // private func setupRefreshControl(){
    func setupRefreshControl(){
        tableView.addSubview(refreshControl)
        
        //设置刷新控件的监听方法
        refreshControl.addTarget(self, action: #selector(loadData), forControlEvents: .ValueChanged)
        //设置上啦刷新视图
        tableView.tableFooterView = pullupView
    }
}

extension GYRootViewController: UITableViewDataSource, UITableViewDelegate {
    
   
    
    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 0
    }
    
    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        return UITableViewCell()
    }
}